package com.core.system.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pojo.entity.SystemUserEntity;
import com.pojo.dto.PageDto;
import com.pojo.dto.SystemUserDto;
import com.pojo.resp.user.UserImRecordResp;
import com.pojo.resp.user.UserPageResp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 系统用户表 Mapper 接口
 * </p>
 *
 * @author hewei
 * @since 2020-11-26
 */
@Mapper
public interface SystemUserMapper extends BaseMapper<SystemUserEntity> {

    /**
     * 用户信息分页查询
     * @param iPage
     * @param pageDto
     * @return
     */
    IPage<UserPageResp> selectUserListPage(IPage<UserPageResp> iPage, PageDto pageDto);

    /**
     * 查询用户信息
     * @param id 用户id
     * @return
     */
    SystemUserDto selectUserDetails(@Param("id")Long id);

    /**
     * 修改用户在线状态
     * @param userId
     * @return
     */
    int updateOnLine(@Param("userId")Long userId);

    /**
     * 查询除自己之外的在线page
     * @param userId
     * @return
     */
    Page<UserImRecordResp> selectUserOnLinePage(IPage<SystemUserDto> iPage, @Param("userId")Long userId);


    /**
     * 根据用户和菜单id 查询该用户该菜单的权限
     * @param userId 用户id
     * @param templateId 菜单id
     * @return
     */
    List<String> selectUserPermission(@Param("userId")Long userId,@Param("templateId")Long templateId);
}
